System and method for using a correspondence table to compress a pronunciation guide

ABSTRACT

Parsing routines extract from a conventional pronunciation dictionary an entry, which includes a dictionary word and dictionary phonemes representing the pronunciation of the dictionary word. A correspondence table is used to compress the pronunciation dictionary. The correspondence table includes correspondence sets for a particular language, each set having a correspondence text entry, a correspondence phoneme entry representing the pronunciation of the correspondence text entry and a unique correspondence set identifying symbol. A matching system compares a dictionary entry with the correspondence sets, and replaces the dictionary entry with the symbols representing the best matches. In the absence of a match, symbols representing silent text or unmatched phonemes can be used. The correspondence symbols representing the best matches provide compressed pronunciation dictionary entries. The matching system also generates decoder code sets for subsequently translating the symbol sets. A decoder system uses the decoder code sets for translating symbol sets in the compressed pronunciation dictionary to generate phonemes corresponding to selected text.

This is a continuation of application Ser. No. 08/665,404, filed on Jun.18, 1996 now U.S. Pat. No. 5,845,238.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates generally to data compression, and moreparticularity to a system and method using correspondence techniques tocompress a pronunciation guide.

2. Description of the Background Art

Computer Random Access Memory (RAM) and disk space are becoming moreavailable and affordable in desktop computer systems. A typical desktopcomputer system currently provides on the order of sixteen megabytes ofRAM and one gigabyte of hard disk memory. This increasing availabilityallows programmers the freedom to create application programs and datafiles which occupy several megabytes of computer memory. However,minimizing the size of data files remains important for optimizingsystem performance and use of memory resources.

To minimize storage requirements, programmers compress large data files.One type of large file is a pronunciation dictionary, which includesdictionary words for a language such as American English and dictionaryphonemes (phonetic sounds) representing the pronunciation of each of thedictionary words. A typical uncompressed pronunciation dictionaryoccupies up to about ten megabytes of memory.

Information such as a pronunciation dictionary can be compressed usingcertain symbols to replace redundant data. For example, a typicalcompression technique assigns symbols to represent particular patternsof redundant data such as multiple zeros or one. Multiple compressiontechniques may be performed successively to eliminate more redundanciesand compress data further. Accordingly, a pronunciation dictionary maybe compressed to around thirty percent or less of its original size.

Previous techniques for compressing pronunciation dictionaries do nottake into account redundancies inherent in dictionary words anddictionary phonemes. Therefore, as an addition to other techniques forcompressing a pronunciation dictionary, it is desirable to have a systemand method for taking advantage of redundancies in pronunciation.

SUMMARY OF THE INVENTION

The present invention overcomes limitations and deficiencies of previoussystems by providing a new system and method for compressing apronunciation guide such as a pronunciation dictionary. The systemsubstitutes a single symbol for some text and its pronunciation, andincludes a central processing unit (CPU) and memory. The memory stores acompression system including parsing routines, a correspondence table, amatching system, a decoder table and a decoder system. The parsingroutines extract a dictionary entry, which comprises a dictionary wordand corresponding dictionary phonemes representing the pronunciation ofthe dictionary word, from an uncompressed pronunciation dictionary alsostored in the memory. The correspondence table is made up ofcorrespondence sets, each of which has a text entry, a phoneme entryrepresenting the pronunciation of the text entry, and a set-identifyingsymbol (i.e., a number). The matching system attempts to find allcorrespondence sets that match text and phoneme combinations of thedictionary entry.

If matches are found, then the matching engine selects the best matchesand adds the representative correspondence symbol set to a compressedpronunciation dictionary. If a match is not found, then the matchingsystem considers characters silent and/or phonemes unmatched, andassigns special symbols to be added to the compressed pronunciationdictionary. The matching system adds decoder code sets to a decodertable for translating the special symbols back to characters orphonemes.

The decoder system uses the compressed pronunciation dictionary anddecoder code sets to generate corresponding phonemes for selected text.These phonemes can be used in processes such as speech recognition,speech synthesis, language translation, foreign language learning, spellchecking, etc.

The present invention provides a method for compressing a pronunciationdictionary. The method creates a correspondence table comprised ofcorrespondence sets, determines which correspondence sets match adictionary word and its corresponding dictionary phonemes, and adds thecorrespondence symbols as compressed data entries to a compressedpronunciation dictionary. The invention also provides a method for usingthe compressed dictionary and decoder code sets to generate phonemesfrom input text.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a computer system including a compressionsystem in accordance with the present invention;

FIG. 2 is a block diagram showing dictionary compressing components ofthe FIG. 1 compression system used to construct a compressedpronunciation dictionary;

FIG. 3 is a text-phoneme correspondence table for American English;

FIG. 4 is a block diagram showing components of the FIG. 1 compressionsystem used in application of the compressed dictionary;

FIG. 5 is a flowchart illustrating the preferred method for compressinga pronunciation dictionary and using the compressed pronunciationdictionary for decoding selected text;

FIG. 6 is a flowchart further illustrating steps of the preferred methodfor compressing an entry from a pronunciation dictionary; and

FIG. 7 is an example phoneme set for American English.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1 is a block diagram of a computer system 100 including acompression system 180 in accordance with the present invention.Computer system 100 is preferably based on a computer such as a PowerMacintosh manufactured by Apple Computer, Inc. of Cupertino, Calif.Computer system 100 includes a Central Processing Unit (CPU) 110, aninput device 120 such as a keyboard and mouse or scanner, and an outputdevice 130 such as a Cathode Ray Tube (CRT) or audio speaker, a RandomAccess Memory (RAM) 150, a data storage (hard disk) 160, an operatingsystem 170 and a compression system 180, each coupled to sional bus 140.

Operating system 170 is a program that controls processing by CPU 110,and is typically stored in data storage 160 and loaded into RAM 150during computer system initialization. CPU 110 has access to RAM 150 forstoring intermediate results and miscellaneous data.

Compression system 180 includes a dictionary compressing program 215 forcompressing a pronunciation dictionary, and a decoder system program 420for subsequently processing text and using the compressed pronunciationdictionary to retrieve phonemes representing the pronunciation of thetext. Compression system 180 is also typically stored in data storage160 and loaded into RAM 150 prior to execution by CPU 110.

FIG. 2 is a block diagram illustrating dictionary compressing program215 of compression system 180, used with a pronunciation dictionary 210to construct a compressed pronunciation dictionary 270. Pronunciationdictionary 210 is preferably a conventional compilation of dictionarywords and of corresponding dictionary phonemes in a specified formatexpressing proper pronunciation of the dictionary words in, for example,American English. Suitable pronunciation dictionaries include theOxford-American® Dictionary. FIG. 7 illustrates an example phoneme list700 for American English. List 700 includes thirty-eight phonemes and anexample word which uses each phoneme. For example, the phoneme “AE”provides the sound made by the letter “a” as in the word “bat.” Otherphonemes or sound-representative symbols can alternatively be used.

Dictionary compressing program 215 includes parsing routines 220, a databuffer 230, a correspondence table 240, a matching system 250 and atuning function 260. Parsing routines 220 extract a dictionary entry,which includes a dictionary word and at least one dictionary phonemerepresenting the pronunciation of the word, from pronunciationdictionary 210. For the example word “enough”, the extracted dictionaryentry includes the dictionary word “enough” and the correspondingphonemes “IH n UX f”. Parsing routines 220 store the extracteddictionary entry in data buffer 230, which may be a portion of RAM 150(FIG. 1).

Correspondence table 240 lists phoneme entries and text entries, forexample, as shown for American English in FIG. 3. A text entry, aphoneme entry and a symbol together form a correspondence set, and aplurality of correspondence sets forms correspondence table 240. Eachcorrespondence set includes an identifier, referred to as acorrespondence symbol, which may be simply the address of the set incorrespondence table 240.

Correspondence table 240 preferably includes correspondence sets formost practical combinations of correspondence text and phonemes in agiven language. A correspondence table 240 which included everyconceivable correspondence set would be inefficient because increasingthe number of code sets degrades compression by subsequent compressiontechniques. Therefore, a tuning function 260 facilities eliminating theless useful correspondence sets from, and adding more usefulcorrespondence sets to, correspondence table 240. The utility orproductivity of a correspondence set is determined by the number ofdictionary entries it helps to compress. A pronunciation dictionary maybe compressed a first time, and the compressed dictionary examined todetermine if any correspondence sets are used less than, say, fivetimes. If so, the less used and thus unproductive correspondence setscan be eliminated or modified. Further, since phonemes typically havecorresponding text, cases where a phoneme does not match any text mayindicate a need to add a correspondence set.

Matching system 250 is a program which reads the extracted dictionaryentry from buffer 230, retrieves correspondence sets from correspondencetable 240, and compares the dictionary entry with the correspondencesets. More particularly, matching system 250 attempts to match thecorrespondence sets with combinations of phonemes and characters fromthe dictionary entry. If matches are made, matching system 250 assignsthe correspondence symbol associated with the “best” matchingcorrespondence set as a compressed data entry, as described below withreference to FIG. 6. If a match cannot be made for a particulardictionary character or phoneme, matching system 250 assigns, ascompressed data entries, special symbols to represent silent charactersor unmatched phonemes. The one or more compressed data entriesrepresenting an entire dictionary entry forms a “symbol set.” The symbolsets for an entire pronunciation dictionary collectively form the“compressed pronunciation dictionary” 270.

Matching system 250 further generates decoder code sets forde-compressing compressed pronunciation dictionary 270, and adds thecode sets to a “decoder table” 280. Each decoder code set includes adecoder text entry, a corresponding decoder phoneme entry, and a decoderset-identifying symbol equivalent to a correspondence symbol ofcorrespondence table 240. Decoder table 280 is like correspondence table240 except that decoder table 280 also includes decoder sets for thesilent text characters and the unmatched phonemes. The decoder sets aredescribed in more detail with reference to FIGS. 4 and 5.

FIG. 3 shows an example correspondence table 240 for American English.The first column specifies correspondence phoneme entries, the secondcolumn specifies correspondence text entries, and the third columnspecifies correspondence symbols. A correspondence text entry specifiestext characters such as “e” or “ou,” and is accompanied by typicallyonly one phonetic sound. A correspondence phoneme entry, such as “IH,”is expressed in the format used by pronunciation dictionary 210, forrepresenting the phonetic sound of each correspondence text entry. Sincesome text entries produce multiple sounds, a phoneme entry may representmultiple sounds such as “y UH.” Further, there may be correspondenceentries which have multiple text characters and multiple phonemes, like“y UW→ieu.”

The correspondence sets may be organized into groups of rows of likephonemes. Grouping rows based on phonemes facilitates comparisons withdictionary combinations if creating table 240 by hand. In the first rowof table 240, correspondence phoneme “AE” represents one of the possiblepronunciations of correspondence text entry “ai”, and thiscorrespondence set is represented by the symbol “(1)”. In the secondrow, the same correspondence phoneme “AE” represents one of the possiblepronunciations of a different correspondence text entry, “a”, and thiscorrespondence set is represented by the symbol “(2)”. In the third row,correspondence phoneme “EY” represents another pronunciation of the samecorrespondence text entry “ai” in the first row, and this correspondenceset is represented by symbol “(3)”. These three rows illustrated how thesame text entry may have different pronunciations, and different textentries may have the same pronunciation.

Correspondence table 240 may be generated manually, i.e. by typing thetable into a computer file, or generated electronically, i.e. bycomputer analysis of productive phoneme-text combinations. It will beappreciated that each language, such as American English or French,would use a different correspondence table 240.

FIG. 4 is a block diagram illustrating the decoder system program 420 ofcompression system 180, and its input and output data. Selected inputtext 410 may be stored in data storage 160 and loaded into RAM 150 forexamination. Decoder system program 420 receives a word from selectedinput text 410.

Decoder system 420 uses the decoder table 280 codes to translate symbolsets of compressed pronunciation dictionary 270 in searching for thecompressed dictionary word whose text matches the received word, andthen in producing phonemes for the received word. If the dictionarycompressing method compressed pronunciation dictionary 210 entries inthe original alphabetical order of the dictionary words, then the symbolsets are entered in the same alphabetical order in compressedpronunciation dictionary 270. Thus, decoder system 420 could approximatethe location of the dictionary word which matches the input text word.Another embodiment of the dictionary compressing method provides anindex to compressed pronunciation dictionary 270. Further, any techniquefor searching a compressed file, such as a hashing function, may beused.

Upon matching a compressed dictionary word to the input text word,decoder system 420 uses the decoder table 280 codes to retrievedictionary phonemes 430 from the matching symbol set. Alternatively, asit searches the compressed dictionary and converts symbol sets to find adictionary word which matches the received text, decoder system 420 mayalso convert the symbol sets to produce phonemes at the same time.

For example, decoder system 420 receives the word “enough” from selectedtext 410. Decoder system 420 uses decoder table 280 to decode symbolsets from compressed pronunciation dictionary 270 until decoding asymbol set to match the dictionary word “enough”. Upon finding a match,decoder system 420 uses decoder table 280 to translate the symbol setinto the output data phonemes “IH n UX f” representing the pronunciationof the received text.

FIG. 5 is a flowchart illustrating a method 500 for compressingpronunciation dictionary 210 and for using the compressed dictionary togenerate representative phonemes from selected input text 410. Method500 begins in step 510 by creating a correspondence table 240 for agiven language. Creatinc correspondence table 240 comprises the step ofinputting a number of correspondence sets, each of which includes aphoneme entry expressing at least one phonetic sound and a text entrywhich indicates the phonetic sound or sounds, and inputting acorrespondence set identifying symbol. Step 510 preferably includesinputting a correspondence set for each of the various textrepresentations of all of the phonemes used in pronunciation dictionary210.

The step 510 preferably further includes tuning function 260 (FIG. 2)using the current version of correspondence table 240 to compress atleast a portion of pronunciation dictionary 210 for determining whichcorrespondence sets are unproductive and what other correspondence setsmay be valuable if added. Tuning function 260 may be re-applied tooptimize correspondence table 240, thereby enabling matching system 250to more effectively compress pronunciation dictionary 210 and enablingcompressed pronunciation dictionary 270 to be further compressed bysubsequent compression techniques.

Program 215 in step 520 uses the optimized correspondence table 240 tocompress pronunciation dictionary 210. More particularly, parsingroutines 220 extract a dictionary entry including a dictionary word andcorresponding dictionary phonemes from pronunciation dictionary 210, andstore the dictionary entry in data buffer 230.

Matching system 250 selects a first phoneme from the dictionary entry,and retrieves all correspondence sets from correspondence table 240which start with the selected dictionary phoneme to determine if a matchcan be made. Multiple dictionary characters which together constitute acorrespondence text entry in correspondence table 240 are “related.”Divisions between related dictionary characters are typically harder todetermine than divisions between dictionary phonemes. Also, there arefewer dictionary phonemes without corresponding dictionary characters(e.g., as in abbreviations such as “Mrs.” or “etc.”) than there are“silent” dictionary characters without phonemes. Therefore, matchingsystem 250 preferably selects a dictionary phoneme, and attempts tomatch correspondence sets based on the dictionary phoneme.

Matching system 250 compares the correspondence sets retrieved fromcorrespondence table 240 with the dictionary entry to determine if anymatches can be made. If only one match is made, matching system 250selects the correspondence symbol associated with the matchingcorrespondence set as the compressed data entry for compressedpronunciation dictionary 270. If more than one match can be made,matching system 250 selects as the compressed data entry for compressedpronunciation dictionary 270 the symbol for the correspondence setcorresponding to the best match. If no match can be made, matchingsystem 250 generates special symbols to represent “silent” characters,or conversely generates special symbols to represent phonemes unmatchedto dictionary text. Generation of special symbols is described ingreater detail with reference to FIG. 6. If a special symbols isgenerated, a decoder code set representing the association of thespecial. symbol to the silent character or alternatively to theunmatched phoneme is added to decoder table 280 for subsequentlydecoding the special symbol.

Matching system 250 then selects the next unprocessed phoneme, andrepeats step 520. until the compressed data entries have been generatedfor the entire dictionary entry. Examples of this process are describedwith reference to Examples 1-3. After all the pronunciation dictionary210 entries have been compressed, the symbol set, which possiblyincludes special symbols, is added to compressed pronunciationdictionary 270. It will be appreciated that step 510 and step 520 aretypically performed by a product developer.

Decoder system 420 in step 530 uses compressed pronunciation dictionary270 and decoder table 280 to generate phonemes for selected text 410.Decoder system 420 receives a selected word from text 410, and then usesdecoder table 280 to decode symbol sets from compressed pronunciationdictionary 270 until one of the decoded dictionary words matches thefirst input word. Decoder system 420 next uses decoder table 280 toretrieve the dictionary phonemes from the matching symbol set, and thenmethod 500 ends for the first input word. Step 530 repeats forsubsequently received words. It will be appreciated that step 530 istypically performed by a customer.

FIG. 6 is a flowchart illustrating a preferred method 600 forcompressing an entry from pronunciation dictionary 210. Method 600 isrepeated for every word in the dictionary to accomplish FIG. 5 step 520.Method 600 begins in step 605 by matching system 250 reading adictionary entry, which comprises a dictionary word and a dictionaryphoneme entry representing the pronunciation of the dictionary word,from buffer 230. Matching system 250 in step 610 determines whether anydictionary characters or dictionary phonemes remain unprocessed in thedictionary entry. If not, method 600 ends. Otherwise, matching system250 in step 620 determines whether both a dictionary character and adictionary phoneme remain.

If both remain, matching system 250 in step 630 searches correspondencetable 240 for all correspondence sets that match dictionaryphoneme-character combinations of the remaining portions of thedictionary entry. More particularly, selecting the nextcurrently-unmatched phoneme, matching system 250 retrieves allcorrespondence sets which begin with the selected dictionary phoneme.Matching system 250 then compares these correspondence sets against theunmatched portions of the dictionary entry.

If matching system 250 in step 640 finds at least one match, thenmatching system 250 in step 650 selects the best match, assigns andstores symbols for any pending silent dictionary characters, and storesthe correspondence symbol for the selected matching correspondence set.Method 600 then returns to step 610.

To select the best match, matching system 250 first selects from thematching sets as the tentative choice the correspondence set having themost phonemes. If there is more than one set having the most phonemes,then matching system 250 selects as the tentative choice the set thathas the most phonemes and the most text characters. If there are morethan one of these sets, matching system 250 just selects the first ofthem. The tentative choice is the best match unless matching system 250determines one of the other sets satisfies selected criteria, suggestingthat it is a better choice. The criteria include:

-   -   (1) the other correspondence set is shorter than the current        tentative choice, i.e., it has fewer phonemes or has the same        number of phonemes and fewer text characters;    -   (2) at least one unprocessed dictionary phoneme would remain in        the dictionary entry after the non-tentative set is applied; and    -   (3) there is a correspondence set that matches the next        unprocessed dictionary phonemes and dictionary characters that        would remain if the non-tentative set were to be applied.        If another set meets the above criteria, it becomes the        tentative choice. The process repeats until all other sets have        been tested. Method 600 then returns to step 610.

If in step 640 no matches are found, matching system 250 in step 685determines whether a threshold number of dictionary characters arecurrently assumed silent. If not, matching system 250 in step 690considers the next dictionary character as silent, and returns to step610. If in step 685 a set threshold number of silent characters arepending, matching system 250 in step 695 assigns and stores a specialsymbol for the current phoneme and considers pending silent dictionarycharacters as no longer silent, i.e. re-labels the pending silentcharacters as unprocessed. Method 600 then returns to step 610.

If in step 620 matching system 250 determines that there are not both adictionary character and a phoneme remaining in the dictionary entry,then matching system 250 in step 660 determines whether it is charactersor phonemes that remain. If characters remain, matching system 250 instep 670 assigns and stores special symbols for all pending silent andall remaining dictionary characters. If only phonemes remain, system 250proceeds to step 695 and continues as explained above.

EXAMPLE 1

“IH n UX f” and “enough”

Matching system 250 retrieves the dictionary word “enough” and thedictionary phonemes “IH n UX f” from data buffer 230. Matching system250 then selects the first dictionary phoneme “IH,” retrieves fromexemplary table 240 (FIG. 3) all correspondence sets which begin withthe selected phoneme (IH→a, IH→e, IH→i, IH→o, IH→u, IH→y.), anddetermines if any of the correspondence sets match.

 IH n UX f  enough

Matching system 250 fins only one match (IH→e) and accordingly“remembers,” i.e. stores in memory, the symbol “(43)” representing thematch.

Matching system 250 then selects the next unprocessed phoneme “n” andretrieves the correspondence sets (ny→gn, n→en, n→gn, n→kn, n→nn, n→n).IH n UX f  e noughMatching system 250 finds only match (n→n), and remembers the symbol“(161)” representing the only match.

Matching system 250 selects the third phoneme “UX” and retrieves thecorrespondence sets (UXr→r, UX→a, UX→eu, UX→e, UX→i, UX→ou, UX→o, UX→u,UX→y).IH n UX f  en ooughMatching system 250 finds two matches (UX→o and UX→ou), and selects thebetter match. Since UX→ou has more text characters matching system 250selects it as the tentative best match. Matching system 250 applies thethree-criteria test as described with reference to FIG. 6 to confirm thebest match assumption. The other set UX→o has fewer text characters, anda phoneme remains after it is applied. However, a match cannot be madewith the next currently unmatched phoneme “f” and remaining textcharacters “ugh.” Thus, matching system 250 selects UX→ou as the bestmatch, and accordingly remembers the correspondence symbol “(89).”

Matching system 250 selects the next unprocessed phoneme “f” andretrieves the correspondence sets (f→ff, f→f, f→gh, f→ph).IH n UX f  enou ghMatching system 250 finds only one match (f→gh) and thus remembers “123”as representing the match. Accordingly, matching system 250 stores thesymbol set “43 161 89 123” in compressed pronunciation dictionary 170 asthe compressed data entry representing the dictionary word “enough” andits dictionary phonemes “IH n UX f”.

EXAMPLE 2

“AE n s UX r” and “answer”

Matching system 250 retrieves the dictionary word “answer” and thedictionary phonemes “AE n s UX r”. In a manner similar to that describedin Example 1, matching system 250 matches the dictionary combinationAE→a and represents it by correspondence symbol “2,” matches thedictionary combination n→n and represents it by symbol “161” and matchesthe dictionary combination s→s and represents it by symbol “173.” Atthis time, matching system 250 selects dictionary phoneme “UX” andretrieves the correspondence sets (UXr→r, UX→a, UX→eu, UX→e, UX→i,UX→ou, UX→o, UX→u, UX→y).

 AE n s UX r  ans wer

Matching system 250 finds no match. Thus, matching system 250 assumesthat “w” is silent.

With the “w” silent, matching system 250 examines the correspondencesets with the remaining unprocessed dictionary entry.AE n s UX r  answ erMatching system 250 finds a match (UX→e), and thus assigns and stores aspecial symbol such as “221” to represent the silent dictionarycharacter “w” and remembers the symbol “(87).” Further, matching system250 adds the decoder code set, for example “221” w φ” wherein the emptyset represents no phoneme, to decoder table 280.

Lastly, matching stem 250 selects the dictionary phoneme “r” andretrieves the correspondence sets (r→rr, r→er, rr→r, r→r).AE n s UX r  answe rMatching system 250 finds only one match (r→r), and selects the symbol“(155).” Matching system 250 adds “2 161 173 221 87 155” to compressedpronunciation dictionary 270 as a symbol set representing the word“answer” and the phonemes “AE n s UX r.”

EXAMPLE 3

“r IH D AX m” and “rhythm”

Matching, system 250 retrieves the dictionary word “rhythm” and thedictionary phonemes “r IH D AX m,” selects the first dictionary phoneme“r” and retrieves the correspondence sets (r→rr, r→er, rr→r, r→r).r IH D AX m  rhythmMatching system 250 finds only one match (r→r), and remembers the symbol“169.”

Matching system 250 selects the next unprocessed phoneme “IH” andretrieves the correspondence sets (IH→a, IH→e, IH→i, IH→o, IH→u, IH→y).r IH D AX m  r hythmMatching system 250 finds no matches. Accordingly, matching system 250assumes the “h” is silent. With the “h” silent, matching system 250 thenexamines the remaining portions of the dictionary entry.r IH D AX m  rh ythmMatching system 250 finds a match (IH→y), assigns a special symbol suchas “222” for silent “h” and remembers the symbol “47.”

Matching system 250 then selects the next unprocessed phoneme “D” andretrieves only correspondence set (D→th), since in this example matchingsystem 250 is case sensitive.

 r IH D AX m  rhy thm

Matching system 250 finds a match and remembers the symbol “120.”

Matching system 250 then selects the next unprocessed phoneme “AX” andretrieves the correspondence sets (AXk→c, AXl→l, AXm→m, AX→a, AX→e,AX→ia, AX→i, AX→o, AX→u, AX→y, AXE→′).r IH D AX m  rhyth mMatching system 250 finds only one match (AXm→m), and remembers symbol“(16).” Since no other characters exist, matching system 250 adds “169222 47 120 16” to compressed pronunciation dictionary 270 as a symbolset representing the dictionary word “rhythm” and the correspondingphonemes “r IH D AX m.”

If for example the correspondence set AXm→m was not included incorrespondence table 240, matching system 250 would find no match.Accordingly, matching system 250 would assume the text character “m” issilent. Since only characters would remain, matching system 250 wouldemit a special symbol such as “223” for current phoneme “AX” and wouldconsider the text character “m” is no longer silent. Matching system 250would then retrieve the correspondence sets (m→lm, m→mm, m→m) forphoneme “m”, would find the only match m→m, and would remember thesymbol “155.” Since no other characters would exist, matching system 250would add “169 222 47 120 223 155” to compressed pronunciationdictionary 270 as a symbol set representing the dictionary word “rhythm”and the corresponding phonemes “r IH D AX m.”

The present invention advantageouly provides a system and method forcompressing a pronunciation dictionary. This is especially useful, forexample, as a precursor to other compression techniques. The system andmethod take advantage of the natural redundancy between dictionary textand dictionary phonemes. Since compression system 180 substitutessymbols for sets of dictionary words and phonemes, memory required tostore the information is reduced by approximately one-third to one-half.

For example, each character in a word may be represented by five bits(since there are twenty-six letters in the English alphabet), and eachphoneme may be represented by six bits (since there are aboutthirty-nine phonemes for American English as illustrated in FIG. 7).Further, dictionary words and the set of phonemes for each dictionaryword are divided by a terminator character. The word “enough” requiresseven characters (including the terminator character) and thus occupiesthirty-five bits. The corresponding phoneme set “IH n UX f” requiresfive characters (including the terminator character), and thus occupiesthirty bits. Thus, the total memory for storing this dictionary entry issixty-five bits.

A decoder table 280, as shown in FIG. 3, has about 220 correspondencesets and 220 correspondence symbols. Accordingly, eight bits are neededto represent a correspondence symbol. As illustrated in the firstexample, the four symbols “(43)”, “(161)”, “(89)” and “(123)” representthe word “enough” and phonemes “IH n UX f”. Thus, five symbols(including the terminator character) are needed and occupy forty bits.Forty bits provides a thirty-eight percent savings over the uncompressedsixty-five bits.

The foregoing description of the preferred embodiments of the inventionis by way of example only, and other variations are provided by thepresent invention. For example, components of this invention may beimplemented using a programmed general purpose digital computer, usingapplication specific integrated circuits, or using a network ofinterconnected conventional components and circuits. Further, althoughthe invention has been described with reference to a dictionary, anyguide having text and phonemes can be compressed using the system andmethod of the present invention. Still further, although the inventionhas been described using phonemes, other alternative means forrepresenting pronunciation of text are possible, such as allophones,syllables or symbols generated by an earlier compression system. Theembodiments described herein are presented for purposes of illustrationand are not intended to be exhaustive or limiting. Many variations andmodifications are possible in light of the foregoing teaching. Thesystem is limited only by the following claims.

1. A computer data storage medium storing a correspondence table whichenables compression of program product for compressing a pronunciationdictionary, the computer program product comprising a computer-readablemedium containing computer program code for: generating a correspondencetable comprising: a plurality of correspondence sets each including acorrespondence text entry that is part of a dictionary word; acorrespondence phoneme entry representing the pronunciation of thecorrespondence text entry; and a correspondence symbol for identifyingthe correspondence set, wherein at least one said correspondence symbolforms a symbol set for use as a compressed data entry in generating saidcompressed pronunciation dictionary.
 2. The computer data storage mediumprogram product of claim 1 further comprising computer program code for:storing a tuning function for optimizing said correspondence table. 3.The computer data storage medium program product of claim 2 wherein saidtuning function eliminates redundant correspondence sets and low usagecorrespondence sets from said correspondence table.
 4. The computer datastorage medium program product of claim 1 wherein said correspondencetable includes said correspondence sets for all practical combinationsof said correspondence text entries and said correspondence phonemeentries for a given language.
 5. The computer data storage mediumprogram product of claim 1 further comprising computer program code for:storing: a grouping of a plurality of said correspondence sets.
 6. Thecomputer data storage medium of claim 5 wherein correspondence phonemeentries of said grouping are similar to one another in pronunciation. 7.The computer data storage medium program product of claim 1 wherein amatching system uses said correspondence phoneme entry to match saidcorrespondence sets in generating said compressed pronunciationdictionary.
 8. A system for storing a pronunciation guide comprising: amemory element storing: a correspondence table for storing pronunciationdata; and a tuning function for optimizing said correspondence table;wherein said correspondence table includes at least one correspondenceset having a correspondence text entry that is part of a dictionaryword, a correspondence phonetic entry representing the pronunciation ofsaid correspondence text entry, and a correspondence symbol foridentifying the correspondence set; and wherein a matching system usessaid correspondence phonetic entry to match said at least onecorrespondence set in generating a compressed pronunciation dictionary.9. The system of claim 8 wherein said tuning function eliminatesredundant correspondence sets from said correspondence table.
 10. Thesystem of claim 9 wherein at least one said correspondence symbol formsa symbol set for us as a compressed entry in generating said compressedpronunciation dictionary.
 11. The system of claim 9 wherein saidcorrespondence table includes a respective correspondence set for eachpractical combination of any correspondence text entry and anycorrespondence phonetic entry for a given language.
 12. The system ofclaim 9 further comprising: a grouping of a plurality of said at leastone correspondence set.
 13. The system of claim 12 wherein said phoneticentries of said grouping are similar to one another in pronunciation.14. The system of claim 8 wherein said tuning function eliminates lowusage correspondence sets from said correspondence table.
 15. The systemof claim 8 wherein said phonetic entry is a phoneme, an allophone, or asyllable.
 16. A method of storing generating a pronunciation guide,comprising the steps of: inputting a correspondence set into acorrespondence table, the correspondence set comprising a text entry anda phoneme entry representing the pronunciation of the text entry; andinputting into said correspondence table a correspondence symbolcorresponding to identifying said correspondence set; wherein at leastone said correspondence symbol forms a symbol set for use as acompressed entry in generating a compressed pronunciation dictionaryandgenerating a pronunciation guide, wherein said correspondence symbolcomprises an entry in the pronunciation guide.
 17. The method of claim16 further comprising the steps of: optimizing said correspondencetable; and grouping said correspondence set into a plurality of saidcorrespondence sets.
 18. The method of claim 17 wherein said step ofoptimizing comprises the steps of: eliminating redundant correspondencesets from said correspondence table; eliminating low-usagecorrespondence sets from said correspondence table; and addingproductive correspondence sets to said correspondence table.
 19. Themethod of claim 16 wherein said step of inputting a correspondence setfurther comprises the steps of: inputting a correspondence text entrythat is part of a dictionary word into said correspondence table; andinputting a phonetic entry corresponding to said correspondence textentry into said correspondence table.
 20. The method of claim 19 16further comprising the step of using said phonetic phoneme entry togenerate said compressed pronunciation dictionary guide.
 21. A computerprogram product for generating a compressed pronunciation dictionary,the computer program product comprising a computer-readable mediumcontaining computer program code for: generating a plurality ofcorrespondence sets each including a correspondence text that is part ofa dictionary word; a correspondence phoneme representing thepronunciation of the correspondence text; and a correspondence symbolfor identifying the correspondence set; storing wherein thecorrespondence symbol in the compressed pronunciation dictionary.
 22. Asystem for storing a pronunciation guide comprising: a memory elementstoring: a correspondence table for storing pronunciation data; and atuning function for optimizing the correspondence data structure;wherein the correspondence table includes at least one correspondenceset having a correspondence text that is part of a dictionary word, acorrespondence phoneme representing the pronunciation of thecorrespondence text, and a correspondence symbol for identifying thecorrespondence set; and wherein a matching system uses thecorrespondence phoneme to match the correspondence set in generating acompressed pronunciation dictionary.
 23. A method of generating apronunciation guide, comprising the steps of: inputting a correspondenceset into a correspondence table, the correspondence set comprising atext entry and a phoneme entry representing the pronunciation of thetext entry; and inputting into the correspondence table a correspondencesymbol identifying the correspondence set; and generating apronunciation guide, wherein the correspondence symbol comprises anentry in the pronunciation guide.
 24. A computer-readable medium havinginstructions contained thereon, which, when executed by a processor,cause the processor to perform the operations of: inputting acorrespondence set into a correspondence table inputting into thecorrespondence table a correspondence symbol identifying thecorrespondence set; and generating a compressed pronunciationdictionary, wherein the correspondence symbol is used as an entry in thecompressed pronunciation dictionary.
 25. A system for compressing apronunciation dictionary guide which includes a plurality of dictionaryentries, each entry having a guide word and at least one associatedphoneme representing the pronunciation of the word, the systemcomprising: a computer-readable medium storing ( 1 ) correspondence datawhich includes a plurality of correspondence sets, each set having (i) atext entry, (ii) a phoneme entry representing a pronunciation of thetext entry, and (iii) a symbol identifying the correspondence set; and (2 ) a matching process for comparing a selected dictionary entry and theassociated phonemes with the correspondence sets, and storingcorrespondence symbols which represent matching correspondence sets as acompressed pronunciation guide entry in the computer-readable medium;and a processor coupled to the computer-readable medium for controllingthe operations of the matching system.
 26. A system for using acompressed pronunciation dictionary and decoder data to decode selectedtext, comprising: memory storing decoder data having a plurality ofdecoder code sets for translating symbol sets, each decoder code setincluding a decoder text entry, a decoder phoneme entry and a decodersymbol representing the decoder code set; a decoder process for usingthe decoder data to translate symbol sets to find a dictionary entrywhich matches the selected text, and upon finding a match using thedecoder data to retrieve the decoder phonemes from the matching symbolset; and a processor coupled to the memory for controlling theoperations of the decoder system.
 27. A computer-based method forcompressing a pronunciation guide which includes a plurality ofdictionary entries, each entry having a dictionary text entry and atleast one associated dictionary phoneme representing the pronunciationof the guide word dictionary text entry, comprising the steps of:storing in a first portion of a computer memory correspondence datawhich includes a plurality of correspondence sets, each correspondenceset including a correspondence text entry, a correspondence phonemeentry representing a pronunciation of the correspondence text entry anda unique correspondence symbol identifying the correspondence set;receiving a dictionary text entry and at least one dictionary phonemerepresenting the pronunciation of the guide word; comparing thedictionary text entry and dictionary phonemes with correspondence sets;and storing the correspondence symbols representing matchingcorrespondence sets as compressed pronunciation guide entries in asecond portion of the computer memory.
 28. A computer storage mediumstoring a computer program for causing a computer to perform the stepsof: storing decoder data which includes a plurality of decoder sets,each decoder set having a decoder text entry, a decoder phoneme entryrepresenting the pronunciation of the decoder text entry, and a uniquedecoder set identifying symbol; receiving selected text; using thedecoder data to decode a symbol set to produce a dictionary entry;comparing the selected text with the dictionary entry to determine ifthey match; and if a match is made, using the decoder data to retrievethe phoneme entries corresponding to a matching symbol set.